diff options
Diffstat (limited to 'packages/web/src/pages/[...slug].md.ts')
| -rw-r--r-- | packages/web/src/pages/[...slug].md.ts | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/packages/web/src/pages/[...slug].md.ts b/packages/web/src/pages/[...slug].md.ts index 51c63b5a6..dbc11d78e 100644 --- a/packages/web/src/pages/[...slug].md.ts +++ b/packages/web/src/pages/[...slug].md.ts @@ -1,13 +1,29 @@ import type { APIRoute } from "astro" import { getCollection } from "astro:content" -export const GET: APIRoute = async ({ params }) => { +function notFoundText(locals: unknown) { + if (typeof locals !== "object" || locals === null || !("t" in locals)) { + return "share.not_found" + } + const t = (locals as { t?: unknown }).t + if (typeof t !== "function") { + return "share.not_found" + } + const text = t("share.not_found") + if (typeof text === "string" && text.length > 0) { + return text + } + return "share.not_found" +} + +export const GET: APIRoute = async ({ params, locals }) => { const slug = params.slug || "index" const docs = await getCollection("docs") const doc = docs.find((d) => d.id === slug) + const notFound = notFoundText(locals) if (!doc) { - return new Response("Not found", { status: 404 }) + return new Response(notFound, { status: 404, statusText: notFound }) } return new Response(doc.body, { |
